#ifdef _WIN32
#pragma warning(disable:4164 4003)
#endif 
# 1 "../gpuAlign.cu"
# 203 "/usr/include/math.h" 3
enum __E1 {
FP_NAN,

FP_INFINITE,

FP_ZERO,

FP_SUBNORMAL,

FP_NORMAL};
# 296 "/usr/include/math.h" 3
enum _LIB_VERSION_TYPE {
_IEEE_ = (-1),
_SVID_,
_XOPEN_,
_POSIX_,
_ISOC_};
# 124 "/usr/include/c++/4.4/bits/cpp_type_traits.h" 3
enum __E3 { _ZNSt9__is_voidIvE7__valueE = 1};
# 144 "/usr/include/c++/4.4/bits/cpp_type_traits.h" 3
enum __E4 { _ZNSt12__is_integerIbE7__valueE = 1};
# 151 "/usr/include/c++/4.4/bits/cpp_type_traits.h" 3
enum __E5 { _ZNSt12__is_integerIcE7__valueE = 1};
# 158 "/usr/include/c++/4.4/bits/cpp_type_traits.h" 3
enum __E6 { _ZNSt12__is_integerIaE7__valueE = 1};
# 165 "/usr/include/c++/4.4/bits/cpp_type_traits.h" 3
enum __E7 { _ZNSt12__is_integerIhE7__valueE = 1};
# 173 "/usr/include/c++/4.4/bits/cpp_type_traits.h" 3
enum __E8 { _ZNSt12__is_integerIwE7__valueE = 1};
# 197 "/usr/include/c++/4.4/bits/cpp_type_traits.h" 3
enum __E9 { _ZNSt12__is_integerIsE7__valueE = 1};
# 204 "/usr/include/c++/4.4/bits/cpp_type_traits.h" 3
enum __E10 { _ZNSt12__is_integerItE7__valueE = 1};
# 211 "/usr/include/c++/4.4/bits/cpp_type_traits.h" 3
enum __E11 { _ZNSt12__is_integerIiE7__valueE = 1};
# 218 "/usr/include/c++/4.4/bits/cpp_type_traits.h" 3
enum __E12 { _ZNSt12__is_integerIjE7__valueE = 1};
# 225 "/usr/include/c++/4.4/bits/cpp_type_traits.h" 3
enum __E13 { _ZNSt12__is_integerIlE7__valueE = 1};
# 232 "/usr/include/c++/4.4/bits/cpp_type_traits.h" 3
enum __E14 { _ZNSt12__is_integerImE7__valueE = 1};
# 239 "/usr/include/c++/4.4/bits/cpp_type_traits.h" 3
enum __E15 { _ZNSt12__is_integerIxE7__valueE = 1};
# 246 "/usr/include/c++/4.4/bits/cpp_type_traits.h" 3
enum __E16 { _ZNSt12__is_integerIyE7__valueE = 1};
# 264 "/usr/include/c++/4.4/bits/cpp_type_traits.h" 3
enum __E17 { _ZNSt13__is_floatingIfE7__valueE = 1};
# 271 "/usr/include/c++/4.4/bits/cpp_type_traits.h" 3
enum __E18 { _ZNSt13__is_floatingIdE7__valueE = 1};
# 278 "/usr/include/c++/4.4/bits/cpp_type_traits.h" 3
enum __E19 { _ZNSt13__is_floatingIeE7__valueE = 1};
# 354 "/usr/include/c++/4.4/bits/cpp_type_traits.h" 3
enum __E20 { _ZNSt9__is_charIcE7__valueE = 1};
# 362 "/usr/include/c++/4.4/bits/cpp_type_traits.h" 3
enum __E21 { _ZNSt9__is_charIwE7__valueE = 1};
# 377 "/usr/include/c++/4.4/bits/cpp_type_traits.h" 3
enum __E22 { _ZNSt9__is_byteIcE7__valueE = 1};
# 384 "/usr/include/c++/4.4/bits/cpp_type_traits.h" 3
enum __E23 { _ZNSt9__is_byteIaE7__valueE = 1};
# 391 "/usr/include/c++/4.4/bits/cpp_type_traits.h" 3
enum __E24 { _ZNSt9__is_byteIhE7__valueE = 1};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIcLi1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIaLi1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIhLi1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char1Li1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar1Li1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char2Li1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar2Li1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char4Li1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar4Li1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIsLi1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureItLi1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short1Li1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort1Li1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short2Li1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort2Li1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short4Li1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort4Li1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIiLi1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIjLi1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI4int1Li1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5uint1Li1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI4int2Li1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5uint2Li1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI4int4Li1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5uint4Li1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIfLi1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6float1Li1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6float2Li1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6float4Li1EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIcLi1EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIaLi1EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIhLi1EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char1Li1EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar1Li1EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char2Li1EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar2Li1EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char4Li1EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar4Li1EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIsLi1EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureItLi1EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short1Li1EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort1Li1EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short2Li1EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort2Li1EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short4Li1EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort4Li1EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIcLi2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIaLi2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIhLi2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char1Li2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar1Li2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char2Li2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar2Li2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char4Li2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar4Li2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIsLi2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureItLi2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short1Li2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort1Li2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short2Li2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort2Li2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short4Li2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort4Li2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIiLi2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIjLi2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI4int1Li2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5uint1Li2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI4int2Li2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5uint2Li2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI4int4Li2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5uint4Li2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIfLi2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6float1Li2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6float2Li2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6float4Li2EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIcLi2EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIaLi2EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIhLi2EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char1Li2EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar1Li2EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char2Li2EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar2Li2EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char4Li2EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar4Li2EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIsLi2EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureItLi2EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short1Li2EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort1Li2EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short2Li2EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort2Li2EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short4Li2EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort4Li2EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIcLi3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIaLi3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIhLi3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char1Li3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar1Li3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char2Li3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar2Li3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char4Li3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar4Li3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIsLi3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureItLi3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short1Li3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort1Li3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short2Li3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort2Li3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short4Li3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort4Li3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIiLi3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIjLi3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI4int1Li3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5uint1Li3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI4int2Li3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5uint2Li3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI4int4Li3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5uint4Li3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIfLi3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6float1Li3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6float2Li3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6float4Li3EL19cudaTextureReadMode0EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIcLi3EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIaLi3EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIhLi3EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char1Li3EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar1Li3EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char2Li3EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar2Li3EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char4Li3EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar4Li3EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIsLi3EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureItLi3EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short1Li3EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort1Li3EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short2Li3EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort2Li3EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short4Li3EL19cudaTextureReadMode1EE;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort4Li3EL19cudaTextureReadMode1EE;
# 206 "/usr/include/libio.h" 3
enum __codecvt_result {

__codecvt_ok,
__codecvt_partial,
__codecvt_error,
__codecvt_noconv};
# 271 "/usr/include/libio.h" 3
struct _IO_FILE;
# 60 "/opt/cuda/C/common/inc/cutil.h"
enum CUTBoolean {

CUTFalse,
CUTTrue};
# 87 "/opt/cuda/bin/../include/cuda.h"
enum CUctx_flags_enum {
CU_CTX_SCHED_AUTO,
CU_CTX_SCHED_SPIN,
CU_CTX_SCHED_YIELD,
CU_CTX_SCHED_MASK,
CU_CTX_BLOCKING_SYNC,
CU_CTX_MAP_HOST = 8,
CU_CTX_LMEM_RESIZE_TO_MAX = 16,
CU_CTX_FLAGS_MASK = 31};





enum CUevent_flags_enum {
CU_EVENT_DEFAULT,
CU_EVENT_BLOCKING_SYNC};





enum CUarray_format_enum {
CU_AD_FORMAT_UNSIGNED_INT8 = 1,
CU_AD_FORMAT_UNSIGNED_INT16,
CU_AD_FORMAT_UNSIGNED_INT32,
CU_AD_FORMAT_SIGNED_INT8 = 8,
CU_AD_FORMAT_SIGNED_INT16,
CU_AD_FORMAT_SIGNED_INT32,
CU_AD_FORMAT_HALF = 16,
CU_AD_FORMAT_FLOAT = 32};





enum CUaddress_mode_enum {
CU_TR_ADDRESS_MODE_WRAP,
CU_TR_ADDRESS_MODE_CLAMP,
CU_TR_ADDRESS_MODE_MIRROR};





enum CUfilter_mode_enum {
CU_TR_FILTER_MODE_POINT,
CU_TR_FILTER_MODE_LINEAR};





enum CUdevice_attribute_enum {
CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_BLOCK = 1,
CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_X,
CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Y,
CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Z,
CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_X,
CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Y,
CU_DEVICE_ATTRIBUTE_MAX_GRID_DIM_Z,
CU_DEVICE_ATTRIBUTE_MAX_SHARED_MEMORY_PER_BLOCK,
CU_DEVICE_ATTRIBUTE_SHARED_MEMORY_PER_BLOCK = 8,
CU_DEVICE_ATTRIBUTE_TOTAL_CONSTANT_MEMORY,
CU_DEVICE_ATTRIBUTE_WARP_SIZE,
CU_DEVICE_ATTRIBUTE_MAX_PITCH,
CU_DEVICE_ATTRIBUTE_MAX_REGISTERS_PER_BLOCK,
CU_DEVICE_ATTRIBUTE_REGISTERS_PER_BLOCK = 12,
CU_DEVICE_ATTRIBUTE_CLOCK_RATE,
CU_DEVICE_ATTRIBUTE_TEXTURE_ALIGNMENT,

CU_DEVICE_ATTRIBUTE_GPU_OVERLAP,
CU_DEVICE_ATTRIBUTE_MULTIPROCESSOR_COUNT,
CU_DEVICE_ATTRIBUTE_KERNEL_EXEC_TIMEOUT,
CU_DEVICE_ATTRIBUTE_INTEGRATED,
CU_DEVICE_ATTRIBUTE_CAN_MAP_HOST_MEMORY,
CU_DEVICE_ATTRIBUTE_COMPUTE_MODE,
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE1D_WIDTH,
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_WIDTH,
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_HEIGHT,
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_WIDTH,
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_HEIGHT,
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE3D_DEPTH,
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_WIDTH,
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_HEIGHT,
CU_DEVICE_ATTRIBUTE_MAXIMUM_TEXTURE2D_ARRAY_NUMSLICES,
CU_DEVICE_ATTRIBUTE_SURFACE_ALIGNMENT,
CU_DEVICE_ATTRIBUTE_CONCURRENT_KERNELS,
CU_DEVICE_ATTRIBUTE_ECC_ENABLED};
# 197 "/opt/cuda/bin/../include/cuda.h"
enum CUfunction_attribute_enum {
# 203 "/opt/cuda/bin/../include/cuda.h"
CU_FUNC_ATTRIBUTE_MAX_THREADS_PER_BLOCK,
# 210 "/opt/cuda/bin/../include/cuda.h"
CU_FUNC_ATTRIBUTE_SHARED_SIZE_BYTES,
# 216 "/opt/cuda/bin/../include/cuda.h"
CU_FUNC_ATTRIBUTE_CONST_SIZE_BYTES,




CU_FUNC_ATTRIBUTE_LOCAL_SIZE_BYTES,




CU_FUNC_ATTRIBUTE_NUM_REGS,




CU_FUNC_ATTRIBUTE_PTX_VERSION,




CU_FUNC_ATTRIBUTE_BINARY_VERSION,

CU_FUNC_ATTRIBUTE_MAX};





enum CUfunc_cache_enum {
CU_FUNC_CACHE_PREFER_NONE,
CU_FUNC_CACHE_PREFER_SHARED,
CU_FUNC_CACHE_PREFER_L1};





enum CUmemorytype_enum {
CU_MEMORYTYPE_HOST = 1,
CU_MEMORYTYPE_DEVICE,
CU_MEMORYTYPE_ARRAY};





enum CUcomputemode_enum {
CU_COMPUTEMODE_DEFAULT,
CU_COMPUTEMODE_EXCLUSIVE,
CU_COMPUTEMODE_PROHIBITED};





enum CUjit_option_enum {
# 277 "/opt/cuda/bin/../include/cuda.h"
CU_JIT_MAX_REGISTERS,
# 290 "/opt/cuda/bin/../include/cuda.h"
CU_JIT_THREADS_PER_BLOCK,
# 297 "/opt/cuda/bin/../include/cuda.h"
CU_JIT_WALL_TIME,
# 305 "/opt/cuda/bin/../include/cuda.h"
CU_JIT_INFO_LOG_BUFFER,
# 313 "/opt/cuda/bin/../include/cuda.h"
CU_JIT_INFO_LOG_BUFFER_SIZE_BYTES,
# 321 "/opt/cuda/bin/../include/cuda.h"
CU_JIT_ERROR_LOG_BUFFER,
# 329 "/opt/cuda/bin/../include/cuda.h"
CU_JIT_ERROR_LOG_BUFFER_SIZE_BYTES,
# 336 "/opt/cuda/bin/../include/cuda.h"
CU_JIT_OPTIMIZATION_LEVEL,
# 343 "/opt/cuda/bin/../include/cuda.h"
CU_JIT_TARGET_FROM_CUCONTEXT,
# 349 "/opt/cuda/bin/../include/cuda.h"
CU_JIT_TARGET,
# 356 "/opt/cuda/bin/../include/cuda.h"
CU_JIT_FALLBACK_STRATEGY};
# 363 "/opt/cuda/bin/../include/cuda.h"
enum CUjit_target_enum {

CU_TARGET_COMPUTE_10,
CU_TARGET_COMPUTE_11,
CU_TARGET_COMPUTE_12,
CU_TARGET_COMPUTE_13,
CU_TARGET_COMPUTE_20};





enum CUjit_fallback_enum {


CU_PREFER_PTX,


CU_PREFER_BINARY};
# 388 "/opt/cuda/bin/../include/cuda.h"
enum CUgraphicsRegisterFlags_enum {
CU_GRAPHICS_REGISTER_FLAGS_NONE};





enum CUgraphicsMapResourceFlags_enum {
CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE,
CU_GRAPHICS_MAP_RESOURCE_FLAGS_READ_ONLY,
CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD};





enum CUarray_cubemap_face_enum {
CU_CUBEMAP_FACE_POSITIVE_X,
CU_CUBEMAP_FACE_NEGATIVE_X,
CU_CUBEMAP_FACE_POSITIVE_Y,
CU_CUBEMAP_FACE_NEGATIVE_Y,
CU_CUBEMAP_FACE_POSITIVE_Z,
CU_CUBEMAP_FACE_NEGATIVE_Z};
# 422 "/opt/cuda/bin/../include/cuda.h"
enum cudaError_enum {

CUDA_SUCCESS,
CUDA_ERROR_INVALID_VALUE,
CUDA_ERROR_OUT_OF_MEMORY,
CUDA_ERROR_NOT_INITIALIZED,
CUDA_ERROR_DEINITIALIZED,

CUDA_ERROR_NO_DEVICE = 100,
CUDA_ERROR_INVALID_DEVICE,

CUDA_ERROR_INVALID_IMAGE = 200,
CUDA_ERROR_INVALID_CONTEXT,
CUDA_ERROR_CONTEXT_ALREADY_CURRENT,
CUDA_ERROR_MAP_FAILED = 205,
CUDA_ERROR_UNMAP_FAILED,
CUDA_ERROR_ARRAY_IS_MAPPED,
CUDA_ERROR_ALREADY_MAPPED,
CUDA_ERROR_NO_BINARY_FOR_GPU,
CUDA_ERROR_ALREADY_ACQUIRED,
CUDA_ERROR_NOT_MAPPED,
CUDA_ERROR_NOT_MAPPED_AS_ARRAY,
CUDA_ERROR_NOT_MAPPED_AS_POINTER,
CUDA_ERROR_ECC_UNCORRECTABLE,

CUDA_ERROR_INVALID_SOURCE = 300,
CUDA_ERROR_FILE_NOT_FOUND,

CUDA_ERROR_INVALID_HANDLE = 400,

CUDA_ERROR_NOT_FOUND = 500,

CUDA_ERROR_NOT_READY = 600,

CUDA_ERROR_LAUNCH_FAILED = 700,
CUDA_ERROR_LAUNCH_OUT_OF_RESOURCES,
CUDA_ERROR_LAUNCH_TIMEOUT,
CUDA_ERROR_LAUNCH_INCOMPATIBLE_TEXTURING,

CUDA_ERROR_POINTER_IS_64BIT = 800,
CUDA_ERROR_SIZE_IS_64BIT,

CUDA_ERROR_UNKNOWN = 999};
# 134 "/usr/include/c++/4.4/bits/cpp_type_traits.h" 3
enum __E25 { _ZNSt12__is_integerIdE7__valueE};
# 61 "/opt/cuda/bin/../include/cufft.h"
enum cufftResult_t {
CUFFT_SUCCESS,
CUFFT_INVALID_PLAN,
CUFFT_ALLOC_FAILED,
CUFFT_INVALID_TYPE,
CUFFT_INVALID_VALUE,
CUFFT_INTERNAL_ERROR,
CUFFT_EXEC_FAILED,
CUFFT_SETUP_FAILED,
CUFFT_INVALID_SIZE};
# 94 "/opt/cuda/bin/../include/cufft.h"
enum cufftType_t {
CUFFT_R2C = 42,
CUFFT_C2R = 44,
CUFFT_C2C = 41,
CUFFT_D2Z = 106,
CUFFT_Z2D = 108,
CUFFT_Z2Z = 105};
# 24 "../typedefs.h"
struct GlobalMatrix;
# 32 "../typedefs.h"
struct GlobalMaxima;
# 44 "../typedefs.h"
struct GlobalDirection;
# 60 "../typedefs.h"
struct StartingPoints;
# 49 "/usr/include/ctype.h" 3
enum __E2 {
_ISupper = 256,
_ISlower = 512,
_ISalpha = 1024,
_ISdigit = 2048,
_ISxdigit = 4096,
_ISspace = 8192,
_ISprint = 16384,
_ISgraph = 32768,
_ISblank = 1,
_IScntrl,
_ISpunct = 4,
_ISalnum = 8};
# 211 "/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h" 3
typedef unsigned long size_t;
#include "crt/host_runtime.h"
# 145 "/usr/include/bits/types.h" 3
typedef long __clock_t;
# 60 "/usr/include/time.h" 3
typedef __clock_t clock_t;
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIcLi1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIaLi1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIhLi1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char1Li1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar1Li1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char2Li1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar2Li1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char4Li1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar4Li1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIsLi1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureItLi1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short1Li1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort1Li1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short2Li1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort2Li1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short4Li1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort4Li1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIiLi1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIjLi1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI4int1Li1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5uint1Li1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI4int2Li1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5uint2Li1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI4int4Li1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5uint4Li1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIfLi1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6float1Li1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6float2Li1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6float4Li1EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIcLi1EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIaLi1EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIhLi1EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char1Li1EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar1Li1EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char2Li1EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar2Li1EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char4Li1EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar4Li1EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIsLi1EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureItLi1EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short1Li1EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort1Li1EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short2Li1EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort2Li1EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short4Li1EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort4Li1EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIcLi2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIaLi2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIhLi2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char1Li2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar1Li2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char2Li2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar2Li2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char4Li2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar4Li2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIsLi2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureItLi2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short1Li2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort1Li2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short2Li2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort2Li2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short4Li2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort4Li2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIiLi2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIjLi2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI4int1Li2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5uint1Li2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI4int2Li2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5uint2Li2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI4int4Li2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5uint4Li2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIfLi2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6float1Li2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6float2Li2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6float4Li2EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIcLi2EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIaLi2EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIhLi2EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char1Li2EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar1Li2EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char2Li2EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar2Li2EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char4Li2EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar4Li2EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIsLi2EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureItLi2EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short1Li2EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort1Li2EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short2Li2EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort2Li2EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short4Li2EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort4Li2EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIcLi3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIaLi3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIhLi3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char1Li3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar1Li3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char2Li3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar2Li3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char4Li3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar4Li3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIsLi3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureItLi3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short1Li3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort1Li3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short2Li3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort2Li3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short4Li3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort4Li3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIiLi3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIjLi3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI4int1Li3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5uint1Li3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI4int2Li3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5uint2Li3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI4int4Li3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5uint4Li3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIfLi3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6float1Li3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6float2Li3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6float4Li3EL19cudaTextureReadMode0EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIcLi3EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIaLi3EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIhLi3EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char1Li3EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar1Li3EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char2Li3EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar2Li3EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI5char4Li3EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6uchar4Li3EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureIsLi3EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureItLi3EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short1Li3EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort1Li3EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short2Li3EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort2Li3EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI6short4Li3EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 60 "/opt/cuda/bin/../include/cuda_texture_types.h"
struct _Z7textureI7ushort4Li3EL19cudaTextureReadMode1EE { struct textureReference __b_16textureReference;};
# 49 "/usr/include/stdio.h" 3
typedef struct _IO_FILE FILE;
# 26 "../typedefs.h"
typedef struct GlobalMatrix GlobalMatrix;
# 34 "../typedefs.h"
typedef struct GlobalMaxima GlobalMaxima;
# 46 "../typedefs.h"
typedef struct GlobalDirection GlobalDirection;
# 62 "../typedefs.h"
typedef struct StartingPoints StartingPoints;
void *memcpy(void*, const void*, size_t); void *memset(void*, int, size_t);
# 105 "/opt/cuda/bin/../include/cuda_runtime_api.h"
extern cudaError_t cudaFree(void *);
extern cudaError_t cudaFreeHost(void *);
# 120 "/opt/cuda/bin/../include/cuda_runtime_api.h"
extern cudaError_t cudaMemcpy(void *, const void *, size_t, enum cudaMemcpyKind);
# 173 "/opt/cuda/bin/../include/cuda_runtime_api.h"
extern cudaError_t cudaSetDevice(int);


extern cudaError_t cudaSetDeviceFlags(int);
# 207 "/opt/cuda/bin/../include/cuda_runtime_api.h"
extern const char *cudaGetErrorString(cudaError_t);
# 183 "/usr/include/time.h" 3
extern  __attribute__((__extern_weak__ __weak__)) clock_t clock(void);
# 62 "/opt/cuda/bin/../include/common_functions.h"
extern  __attribute__((__extern_weak__ __weak__)) void *memcpy(void *__restrict__, const void *__restrict__, size_t);
# 59 "/opt/cuda/bin/../include/common_functions.h"
extern  __attribute__((__extern_weak__ __weak__)) void *memset(void *, int, size_t);
# 467 "/usr/include/string.h" 3
extern char *__attribute__((__pure__)) _Z5indexPci(char *, int) __asm__("index");
# 65 "/opt/cuda/bin/../include/math_functions.h"
extern  __attribute__((__extern_weak__ __weak__)) int __attribute__((__const__)) abs(int);

extern  __attribute__((__extern_weak__ __weak__)) long __attribute__((__const__)) labs(long);

extern  __attribute__((__extern_weak__ __weak__)) long long __attribute__((__const__)) llabs(long long);

extern  __attribute__((__extern_weak__ __weak__)) double __attribute__((__const__)) fabs(double);

extern  __attribute__((__extern_weak__ __weak__)) float __attribute__((__const__)) fabsf(float);


extern  __attribute__((__extern_weak__ __weak__)) int min(int, int);

extern  __attribute__((__extern_weak__ __weak__)) unsigned umin(unsigned, unsigned);

extern  __attribute__((__extern_weak__ __weak__)) long long llmin(long long, long long);

extern  __attribute__((__extern_weak__ __weak__)) unsigned long long ullmin(unsigned long long, unsigned long long);

extern  __attribute__((__extern_weak__ __weak__)) float fminf(float, float);

extern  __attribute__((__extern_weak__ __weak__)) double fmin(double, double);


extern  __attribute__((__extern_weak__ __weak__)) int max(int, int);

extern  __attribute__((__extern_weak__ __weak__)) unsigned umax(unsigned, unsigned);

extern  __attribute__((__extern_weak__ __weak__)) long long llmax(long long, long long);

extern  __attribute__((__extern_weak__ __weak__)) unsigned long long ullmax(unsigned long long, unsigned long long);

extern  __attribute__((__extern_weak__ __weak__)) float fmaxf(float, float);

extern  __attribute__((__extern_weak__ __weak__)) double fmax(double, double);


extern  __attribute__((__extern_weak__ __weak__)) double sin(double);

extern  __attribute__((__extern_weak__ __weak__)) float sinf(float);


extern  __attribute__((__extern_weak__ __weak__)) double cos(double);

extern  __attribute__((__extern_weak__ __weak__)) float cosf(float);


extern  __attribute__((__extern_weak__ __weak__)) void sincos(double, double *, double *);

extern  __attribute__((__extern_weak__ __weak__)) void sincosf(float, float *, float *);


extern  __attribute__((__extern_weak__ __weak__)) double tan(double);

extern  __attribute__((__extern_weak__ __weak__)) float tanf(float);


extern  __attribute__((__extern_weak__ __weak__)) double sqrt(double);

extern  __attribute__((__extern_weak__ __weak__)) float sqrtf(float);


extern  __attribute__((__extern_weak__ __weak__)) double rsqrt(double);

extern  __attribute__((__extern_weak__ __weak__)) float rsqrtf(float);


extern  __attribute__((__extern_weak__ __weak__)) double exp2(double);

extern  __attribute__((__extern_weak__ __weak__)) float exp2f(float);


extern  __attribute__((__extern_weak__ __weak__)) double exp10(double);

extern  __attribute__((__extern_weak__ __weak__)) float exp10f(float);


extern  __attribute__((__extern_weak__ __weak__)) double expm1(double);

extern  __attribute__((__extern_weak__ __weak__)) float expm1f(float);


extern  __attribute__((__extern_weak__ __weak__)) double log2(double);

extern  __attribute__((__extern_weak__ __weak__)) float log2f(float);


extern  __attribute__((__extern_weak__ __weak__)) double log10(double);

extern  __attribute__((__extern_weak__ __weak__)) float log10f(float);


extern  __attribute__((__extern_weak__ __weak__)) double log(double);

extern  __attribute__((__extern_weak__ __weak__)) float logf(float);


extern  __attribute__((__extern_weak__ __weak__)) double log1p(double);

extern  __attribute__((__extern_weak__ __weak__)) float log1pf(float);


extern  __attribute__((__extern_weak__ __weak__)) double __attribute__((__const__)) floor(double);

extern  __attribute__((__extern_weak__ __weak__)) float __attribute__((__const__)) floorf(float);


extern  __attribute__((__extern_weak__ __weak__)) double exp(double);

extern  __attribute__((__extern_weak__ __weak__)) float expf(float);


extern  __attribute__((__extern_weak__ __weak__)) double cosh(double);

extern  __attribute__((__extern_weak__ __weak__)) float coshf(float);


extern  __attribute__((__extern_weak__ __weak__)) double sinh(double);

extern  __attribute__((__extern_weak__ __weak__)) float sinhf(float);


extern  __attribute__((__extern_weak__ __weak__)) double tanh(double);

extern  __attribute__((__extern_weak__ __weak__)) float tanhf(float);


extern  __attribute__((__extern_weak__ __weak__)) double acosh(double);

extern  __attribute__((__extern_weak__ __weak__)) float acoshf(float);


extern  __attribute__((__extern_weak__ __weak__)) double asinh(double);

extern  __attribute__((__extern_weak__ __weak__)) float asinhf(float);


extern  __attribute__((__extern_weak__ __weak__)) double atanh(double);

extern  __attribute__((__extern_weak__ __weak__)) float atanhf(float);


extern  __attribute__((__extern_weak__ __weak__)) double ldexp(double, int);

extern  __attribute__((__extern_weak__ __weak__)) float ldexpf(float, int);


extern  __attribute__((__extern_weak__ __weak__)) double logb(double);

extern  __attribute__((__extern_weak__ __weak__)) float logbf(float);


extern  __attribute__((__extern_weak__ __weak__)) int ilogb(double);

extern  __attribute__((__extern_weak__ __weak__)) int ilogbf(float);


extern  __attribute__((__extern_weak__ __weak__)) double scalbn(double, int);

extern  __attribute__((__extern_weak__ __weak__)) float scalbnf(float, int);


extern  __attribute__((__extern_weak__ __weak__)) double scalbln(double, long);

extern  __attribute__((__extern_weak__ __weak__)) float scalblnf(float, long);


extern  __attribute__((__extern_weak__ __weak__)) double frexp(double, int *);

extern  __attribute__((__extern_weak__ __weak__)) float frexpf(float, int *);


extern  __attribute__((__extern_weak__ __weak__)) double __attribute__((__const__)) round(double);

extern  __attribute__((__extern_weak__ __weak__)) float __attribute__((__const__)) roundf(float);


extern  __attribute__((__extern_weak__ __weak__)) long lround(double);

extern  __attribute__((__extern_weak__ __weak__)) long lroundf(float);


extern  __attribute__((__extern_weak__ __weak__)) long long llround(double);

extern  __attribute__((__extern_weak__ __weak__)) long long llroundf(float);


extern  __attribute__((__extern_weak__ __weak__)) double rint(double);

extern  __attribute__((__extern_weak__ __weak__)) float rintf(float);


extern  __attribute__((__extern_weak__ __weak__)) long lrint(double);

extern  __attribute__((__extern_weak__ __weak__)) long lrintf(float);


extern  __attribute__((__extern_weak__ __weak__)) long long llrint(double);

extern  __attribute__((__extern_weak__ __weak__)) long long llrintf(float);


extern  __attribute__((__extern_weak__ __weak__)) double nearbyint(double);

extern  __attribute__((__extern_weak__ __weak__)) float nearbyintf(float);


extern  __attribute__((__extern_weak__ __weak__)) double __attribute__((__const__)) ceil(double);

extern  __attribute__((__extern_weak__ __weak__)) float __attribute__((__const__)) ceilf(float);


extern  __attribute__((__extern_weak__ __weak__)) double __attribute__((__const__)) trunc(double);

extern  __attribute__((__extern_weak__ __weak__)) float __attribute__((__const__)) truncf(float);


extern  __attribute__((__extern_weak__ __weak__)) double fdim(double, double);

extern  __attribute__((__extern_weak__ __weak__)) float fdimf(float, float);


extern  __attribute__((__extern_weak__ __weak__)) double atan2(double, double);

extern  __attribute__((__extern_weak__ __weak__)) float atan2f(float, float);


extern  __attribute__((__extern_weak__ __weak__)) double atan(double);

extern  __attribute__((__extern_weak__ __weak__)) float atanf(float);


extern  __attribute__((__extern_weak__ __weak__)) double asin(double);

extern  __attribute__((__extern_weak__ __weak__)) float asinf(float);


extern  __attribute__((__extern_weak__ __weak__)) double acos(double);

extern  __attribute__((__extern_weak__ __weak__)) float acosf(float);


extern  __attribute__((__extern_weak__ __weak__)) double hypot(double, double);

extern  __attribute__((__extern_weak__ __weak__)) float hypotf(float, float);


extern  __attribute__((__extern_weak__ __weak__)) double cbrt(double);

extern  __attribute__((__extern_weak__ __weak__)) float cbrtf(float);


extern  __attribute__((__extern_weak__ __weak__)) double rcbrt(double);

extern  __attribute__((__extern_weak__ __weak__)) float rcbrtf(float);


extern  __attribute__((__extern_weak__ __weak__)) double sinpi(double);

extern  __attribute__((__extern_weak__ __weak__)) float sinpif(float);


extern  __attribute__((__extern_weak__ __weak__)) double pow(double, double);

extern  __attribute__((__extern_weak__ __weak__)) float powf(float, float);


extern  __attribute__((__extern_weak__ __weak__)) double modf(double, double *);

extern  __attribute__((__extern_weak__ __weak__)) float modff(float, float *);


extern  __attribute__((__extern_weak__ __weak__)) double fmod(double, double);

extern  __attribute__((__extern_weak__ __weak__)) float fmodf(float, float);


extern  __attribute__((__extern_weak__ __weak__)) double remainder(double, double);

extern  __attribute__((__extern_weak__ __weak__)) float remainderf(float, float);


extern  __attribute__((__extern_weak__ __weak__)) double remquo(double, double, int *);

extern  __attribute__((__extern_weak__ __weak__)) float remquof(float, float, int *);


extern  __attribute__((__extern_weak__ __weak__)) double erf(double);

extern  __attribute__((__extern_weak__ __weak__)) float erff(float);


extern  __attribute__((__extern_weak__ __weak__)) double erfinv(double);

extern  __attribute__((__extern_weak__ __weak__)) float erfinvf(float);


extern  __attribute__((__extern_weak__ __weak__)) double erfc(double);

extern  __attribute__((__extern_weak__ __weak__)) float erfcf(float);


extern  __attribute__((__extern_weak__ __weak__)) double erfcinv(double);

extern  __attribute__((__extern_weak__ __weak__)) float erfcinvf(float);


extern  __attribute__((__extern_weak__ __weak__)) double lgamma(double);

extern  __attribute__((__extern_weak__ __weak__)) float lgammaf(float);


extern  __attribute__((__extern_weak__ __weak__)) double tgamma(double);

extern  __attribute__((__extern_weak__ __weak__)) float tgammaf(float);


extern  __attribute__((__extern_weak__ __weak__)) double __attribute__((__const__)) copysign(double, double);

extern  __attribute__((__extern_weak__ __weak__)) float __attribute__((__const__)) copysignf(float, float);


extern  __attribute__((__extern_weak__ __weak__)) double __attribute__((__const__)) nextafter(double, double);

extern  __attribute__((__extern_weak__ __weak__)) float __attribute__((__const__)) nextafterf(float, float);


extern  __attribute__((__extern_weak__ __weak__)) double __attribute__((__const__)) nan(const char *);

extern  __attribute__((__extern_weak__ __weak__)) float __attribute__((__const__)) nanf(const char *);


extern  __attribute__((__extern_weak__ __weak__)) int __attribute__((__const__)) __isinf(double);

extern  __attribute__((__extern_weak__ __weak__)) int __attribute__((__const__)) __isinff(float);


extern  __attribute__((__extern_weak__ __weak__)) int __attribute__((__const__)) __isnan(double);

extern  __attribute__((__extern_weak__ __weak__)) int __attribute__((__const__)) __isnanf(float);
# 418 "/opt/cuda/bin/../include/math_functions.h"
extern  __attribute__((__extern_weak__ __weak__)) int __attribute__((__const__)) __finite(double);

extern  __attribute__((__extern_weak__ __weak__)) int __attribute__((__const__)) __finitef(float);

extern  __attribute__((__extern_weak__ __weak__)) int __attribute__((__const__)) __signbit(double);




extern  __attribute__((__extern_weak__ __weak__)) int __attribute__((__const__)) __signbitf(float);


extern  __attribute__((__extern_weak__ __weak__)) double fma(double, double, double);

extern  __attribute__((__extern_weak__ __weak__)) float fmaf(float, float, float);
# 440 "/opt/cuda/bin/../include/math_functions.h"
extern  __attribute__((__extern_weak__ __weak__)) int __attribute__((__const__)) __signbitl(long double);

extern  __attribute__((__extern_weak__ __weak__)) int __attribute__((__const__)) __isinfl(long double);

extern  __attribute__((__extern_weak__ __weak__)) int __attribute__((__const__)) __isnanl(long double);
# 454 "/opt/cuda/bin/../include/math_functions.h"
extern  __attribute__((__extern_weak__ __weak__)) int __attribute__((__const__)) __finitel(long double);
# 148 "/usr/include/stdlib.h" 3
extern int __attribute__((__pure__)) atoi(const char *);
# 471 "/usr/include/stdlib.h" 3
extern void *__attribute__((__malloc__)) malloc(size_t);
# 488 "/usr/include/stdlib.h" 3
extern void free(void *);
# 543 "/usr/include/stdlib.h" 3
extern void __attribute__((__noreturn__)) exit(int);
# 214 "/usr/include/stdio.h" 3
extern int fclose(FILE *);
# 249 "/usr/include/stdio.h" 3
extern FILE *fopen(const char *__restrict__, const char *__restrict__);
# 333 "/usr/include/stdio.h" 3
extern int fprintf(FILE *__restrict__, const char *__restrict__, ...);





extern int printf(const char *__restrict__, ...);
# 604 "/usr/include/stdio.h" 3
extern char *fgets(char *__restrict__, int, FILE *__restrict__);
# 801 "/usr/include/stdio.h" 3
extern int feof(FILE *);
# 27 "../smithwaterman.h"
extern void _Z4initPPcS0_S0_S0_PP12GlobalMatrixS3_PP12GlobalMaximaS6_PP15GlobalDirectionS9_S9_PP14StartingPointsSC_PPfSE_4dim3i(char **, char **, char **, char **, GlobalMatrix **, GlobalMatrix **, GlobalMaxima **, GlobalMaxima **, GlobalDirection **, GlobalDirection **, GlobalDirection **, StartingPoints **, StartingPoints **, float **, float **, dim3, int);
# 39 "../smithwaterman.h"
extern void _Z12initZeroCopyPPj(unsigned **);


extern void _Z18calculateScoreHostP12GlobalMatrixPcS1_P12GlobalMaximaP15GlobalDirection(GlobalMatrix *, char *, char *, GlobalMaxima *, GlobalDirection *);
# 58 "../smithwaterman.h"
extern void _Z13tracebackHostP12GlobalMatrixP12GlobalMaximaP15GlobalDirectionS4_PjP14StartingPointsPfi(GlobalMatrix *, GlobalMaxima *, GlobalDirection *, GlobalDirection *, unsigned *, StartingPoints *, float *, int);




extern void _Z14plotAlignmentsPcS_P15GlobalDirectionjP14StartingPointsiiS_S_(char *, char *, GlobalDirection *, unsigned, StartingPoints *, int, int, char *, char *);
# 119 "/usr/include/ctype.h" 3
extern int toupper(int);
# 18 "../gpuAlign.cu"
extern int main(int, char **);
static void __sti___16_gpuAlign_cpp1_ii_f8a4b240(void) __attribute__((__constructor__));
# 147 "/usr/include/stdio.h" 3
extern struct _IO_FILE *stderr;
#include "gpuAlign.cudafe1.stub.h"
# 88 "../definitions.h"
__loc_sc__(__constant__,,) float __shadow_var(scoringsMatrix,scoringsMatrix)[26][26];
# 18 "../gpuAlign.cu"
int main( int argc,  char **argv) { auto enum cudaError __T20;
auto const char *__T21;
auto unsigned __T22;
auto unsigned __T23;




auto int device;



auto enum cudaError cudaError_t;



auto char *h_sequences;
# 34 "../gpuAlign.cu"
auto char *h_targets;
auto char *d_sequences;
# 35 "../gpuAlign.cu"
auto char *d_targets;
auto GlobalMatrix *d_matrix;
auto GlobalMatrix *h_matrix;
auto GlobalMaxima *d_globalMaxima;
auto GlobalMaxima *h_globalMaxima;
auto GlobalDirection *d_globalDirection;
auto GlobalDirection *h_globalDirectionZeroCopy;
auto GlobalDirection *d_globalDirectionZeroCopy;
auto unsigned *d_indexIncrement;
auto StartingPoints *h_startingPointsZeroCopy;
auto StartingPoints *d_startingPointsZeroCopy;
auto float *h_maxPossibleScoreZeroCopy;
auto float *d_maxPossibleScoreZeroCopy;


auto dim3 superBlocks;

auto char *descSequences;
auto char *descTargets;
# 71 "../gpuAlign.cu"
auto FILE *tagsFile;
# 71 "../gpuAlign.cu"
auto FILE *seqFile;
# 81 "../gpuAlign.cu"
auto int t;
# 114 "../gpuAlign.cu"
auto int s;
# 20 "../gpuAlign.cu"
if (argc != 6) {
printf(((const char *)"Error: use: ParSW device sequenceFile targetFile superBlocksX superBlocksY!\n"));
return 1;
}


device = 0;
if ((argc >= 2) && (atoi(((const char *)(argv[1]))))) {
device = ((atoi(((const char *)(argv[1])))) - 1); }

cudaError_t = (cudaSetDeviceFlags(8));
{ __T20 = (cudaSetDevice(device)); __T21 = ((const char *)"../gpuAlign.cu"); { if (0 != ((int)__T20)) { fprintf(stderr, ((const char *)"%s(%i) : cudaSafeCall() Runtime API error : %s.\n"), __T21, 31, (cudaGetErrorString(__T20))); exit((-1)); } } }


h_sequences = ((char *)0); h_targets = ((char *)0);
d_sequences = ((char *)0); d_targets = ((char *)0);
d_matrix = ((GlobalMatrix *)0);
h_matrix = ((GlobalMatrix *)0);
d_globalMaxima = ((GlobalMaxima *)0);
h_globalMaxima = ((GlobalMaxima *)0);
d_globalDirection = ((GlobalDirection *)0);
h_globalDirectionZeroCopy = ((GlobalDirection *)0);
d_globalDirectionZeroCopy = ((GlobalDirection *)0);
d_indexIncrement = ((unsigned *)0);
h_startingPointsZeroCopy = ((StartingPoints *)0);
d_startingPointsZeroCopy = ((StartingPoints *)0);
h_maxPossibleScoreZeroCopy = ((float *)0);
d_maxPossibleScoreZeroCopy = ((float *)0);


{ __T22 = ((unsigned)(atoi(((const char *)(argv[4]))))); __T23 = ((unsigned)(atoi(((const char *)(argv[5]))))); { (superBlocks.x) = __T22; (superBlocks.y) = __T23; (superBlocks.z) = 0U; } }

descSequences = ((char *)(malloc((((1UL * ((unsigned long)(superBlocks.x))) * 25UL) * 500UL))));
descTargets = ((char *)(malloc((((1UL * ((unsigned long)(superBlocks.y))) * 323UL) * 500UL))));



_Z4initPPcS0_S0_S0_PP12GlobalMatrixS3_PP12GlobalMaximaS6_PP15GlobalDirectionS9_S9_PP14StartingPointsSC_PPfSE_4dim3i((&h_sequences), (&h_targets), (&d_sequences), (&d_targets), (&h_matrix), (&d_matrix), (&h_globalMaxima), (&d_globalMaxima), (&d_globalDirection), (&h_globalDirectionZeroCopy), (&d_globalDirectionZeroCopy), (&h_startingPointsZeroCopy), (&d_startingPointsZeroCopy), (&h_maxPossibleScoreZeroCopy), (&d_maxPossibleScoreZeroCopy), superBlocks, device);
# 71 "../gpuAlign.cu"
tagsFile = ((FILE *)0); seqFile = ((FILE *)0);

tagsFile = (fopen(((const char *)(argv[3])), ((const char *)"r")));
seqFile = (fopen(((const char *)(argv[2])), ((const char *)"r")));

if ((!(tagsFile)) || (!(seqFile))) {
printf(((const char *)"Error: could not open tag/seq file!\n"));
return 1;
}

t = 0;
for (; ((((unsigned)t) < ((superBlocks.y) * 323U)) && (!(feof(tagsFile)))); t++) {
auto char *current;
auto char *currentDesc;

auto char *__cuda_local_var_22489_9_endLine;


auto char __cuda_local_var_22492_8_inString;
# 83 "../gpuAlign.cu"
current = (h_targets + (t * 120));
currentDesc = (descTargets + (t * 500));
fgets(currentDesc, 500, tagsFile);
__cuda_local_var_22489_9_endLine = (_Z5indexPci(currentDesc, 10));
if (__cuda_local_var_22489_9_endLine) { (*__cuda_local_var_22489_9_endLine) = ((char)0); }
fgets(current, 120, tagsFile);
__cuda_local_var_22492_8_inString = ((char)1); {
auto int i;
# 90 "../gpuAlign.cu"
i = 0; for (; (i < 120); i++) {
if ((__cuda_local_var_22492_8_inString) && ((((int)(current[i])) == 10) || (!(current[i])))) {
__cuda_local_var_22492_8_inString = ((char)0); }
if (__cuda_local_var_22492_8_inString) {
(current[i]) = ((char)(toupper(((int)(current[i])))));
if (((((int)(current[i])) - 65) < 0) || ((((int)(current[i])) - 65) > 25)) {
fprintf(stderr, ((const char *)"Error: wrong character in target file: \'%c\', desc: %s\n"), ((int)(current[i])), current);
return 1;
}
} else  {

(current[i]) = ((char)120); }
} }

}

fprintf(stderr, ((const char *)"Read number of targets: %d\n"), (t - 1));

for (; (((unsigned)t) < ((superBlocks.y) * 323U)); t++) { {
auto int c;
# 109 "../gpuAlign.cu"
c = 0; for (; (c < 120); c++) {
(*((h_targets + (t * 120)) + c)) = ((char)120); } }
}


s = 0;
for (; ((((unsigned)s) < ((superBlocks.x) * 25U)) && (!(feof(seqFile)))); s++) {

auto char *__cuda_local_var_22520_10_current;
auto char *__cuda_local_var_22521_10_currentDesc;

auto char *__cuda_local_var_22523_10_endOfLine;



auto char __cuda_local_var_22527_8_inString;
# 116 "../gpuAlign.cu"
(h_maxPossibleScoreZeroCopy[s]) = (0.0F);
__cuda_local_var_22520_10_current = (h_sequences + (s * 464));
__cuda_local_var_22521_10_currentDesc = (descSequences + (s * 500));
fgets(__cuda_local_var_22521_10_currentDesc, 500, seqFile);
__cuda_local_var_22523_10_endOfLine = (_Z5indexPci(__cuda_local_var_22521_10_currentDesc, 10));
if (__cuda_local_var_22523_10_endOfLine) { (*__cuda_local_var_22523_10_endOfLine) = ((char)0); }
fgets(__cuda_local_var_22520_10_current, 464, seqFile);

__cuda_local_var_22527_8_inString = ((char)1); {

auto int i;
# 126 "../gpuAlign.cu"
i = 0; for (; (i < 464); i++) {

if ((__cuda_local_var_22527_8_inString) && ((((int)(__cuda_local_var_22520_10_current[i])) == 10) || (!(__cuda_local_var_22520_10_current[i])))) {
__cuda_local_var_22527_8_inString = ((char)0); }
if (__cuda_local_var_22527_8_inString) {
(__cuda_local_var_22520_10_current[i]) = ((char)(toupper(((int)(__cuda_local_var_22520_10_current[i])))));
(h_maxPossibleScoreZeroCopy[s]) += (5.0);
if (((((int)(__cuda_local_var_22520_10_current[i])) - 65) < 0) || ((((int)(__cuda_local_var_22520_10_current[i])) - 65) > 25)) {
fprintf(stderr, ((const char *)"Error: wrong character in file: \'%c\', file ref: %i\n"), ((int)(__cuda_local_var_22520_10_current[i])), s);
return 1;
}
} else  {

(__cuda_local_var_22520_10_current[i]) = ((char)120); }
} }
if ((__cuda_local_var_22527_8_inString) && (!(feof(seqFile)))) {
fprintf(stderr, ((const char *)"Error: read too long!\n"));
fprintf(stderr, ((const char *)"id: %s\n"), __cuda_local_var_22521_10_currentDesc);
return 1;
}
(h_maxPossibleScoreZeroCopy[s]) *= (0.0);

}

fprintf(stderr, ((const char *)"Read number of sequences: %d\n"), (s - 1));

for (; (((unsigned)s) < ((superBlocks.x) * 25U)); s++) {
(h_maxPossibleScoreZeroCopy[s]) = (0.0F); {
auto int c;
# 154 "../gpuAlign.cu"
c = 0; for (; (c < 464); c++) {
(*((h_sequences + (s * 464)) + c)) = ((char)120); } }
}

fclose(tagsFile);
fclose(seqFile); { auto enum cudaError __T24;
auto const char *__T25;
auto int i;
# 161 "../gpuAlign.cu"
i = 0; for (; (((unsigned)i) < (superBlocks.y)); i++) {
{ __T24 = (cudaMemcpy(((void *)d_targets), ((const void *)(h_targets + ((i * 323) * 120))), 38760UL, cudaMemcpyHostToDevice)); __T25 = ((const char *)"../gpuAlign.cu"); { if (0 != ((int)__T24)) { fprintf(stderr, ((const char *)"%s(%i) : cudaSafeCall() Runtime API error : %s.\n"), __T25, 162, (cudaGetErrorString(__T24))); exit((-1)); } } }
fprintf(stderr, ((const char *)"Starting alignments on target block %i\n"), i); {
auto int j;
# 164 "../gpuAlign.cu"
j = 0; for (; (((unsigned)j) < (superBlocks.x)); j++) { auto enum cudaError __T26;
auto const char *__T27;
# 175 "../gpuAlign.cu"
auto unsigned __cuda_local_var_22578_17_index[1];
# 166 "../gpuAlign.cu"
{ __T26 = (cudaMemcpy(((void *)d_sequences), ((const void *)(h_sequences + ((j * 25) * 464))), 11600UL, cudaMemcpyHostToDevice)); __T27 = ((const char *)"../gpuAlign.cu"); { if (0 != ((int)__T26)) { fprintf(stderr, ((const char *)"%s(%i) : cudaSafeCall() Runtime API error : %s.\n"), __T27, 166, (cudaGetErrorString(__T26))); exit((-1)); } } }


_Z12initZeroCopyPPj((&d_indexIncrement));

_Z18calculateScoreHostP12GlobalMatrixPcS1_P12GlobalMaximaP15GlobalDirection(d_matrix, d_sequences, d_targets, d_globalMaxima, d_globalDirection);

_Z13tracebackHostP12GlobalMatrixP12GlobalMaximaP15GlobalDirectionS4_PjP14StartingPointsPfi(d_matrix, d_globalMaxima, d_globalDirection, d_globalDirectionZeroCopy, d_indexIncrement, d_startingPointsZeroCopy, d_maxPossibleScoreZeroCopy, (j * 25));


cudaMemcpy(((void *)(__cuda_local_var_22578_17_index)), ((const void *)d_indexIncrement), 4UL, cudaMemcpyDeviceToHost);
fprintf(stderr, ((const char *)"Number of alignments: %d @ %d\n"), (*(__cuda_local_var_22578_17_index)), j);

_Z14plotAlignmentsPcS_P15GlobalDirectionjP14StartingPointsiiS_S_(h_sequences, h_targets, h_globalDirectionZeroCopy, (*(__cuda_local_var_22578_17_index)), h_startingPointsZeroCopy, (j * 25), (i * 323), descSequences, descTargets);

cudaFree(((void *)d_indexIncrement));
} }
} }


cudaFree(((void *)d_sequences));
cudaFree(((void *)d_targets));
cudaFree(((void *)d_matrix));
cudaFree(((void *)d_globalMaxima));
cudaFree(((void *)d_indexIncrement));
cudaFreeHost(((void *)h_globalDirectionZeroCopy));
cudaFreeHost(((void *)h_startingPointsZeroCopy));
free(((void *)h_sequences));
free(((void *)h_targets));
free(((void *)h_matrix));
free(((void *)h_globalMaxima));
free(((void *)descTargets));
free(((void *)descSequences));
return 0;
}
static void __sti___16_gpuAlign_cpp1_ii_f8a4b240(void) {   }

#include "gpuAlign.cudafe1.stub.c"
